/* 
 * File:   OppSuitTrackDiscardStrategy.h
 * Author: root
 *
 * Created on December 6, 2008, 3:32 PM
 */

#ifndef _OPPSUITTRACKDISCARDSTRATEGY_H
#define	_OPPSUITTRACKDISCARDSTRATEGY_H

#include "DiscardStrategy.h"

class OppSuitTrackDiscardStrategy : public DiscardStrategy {
    
    int numTies;
    int decisionCertainty;
    
protected:
    
    virtual void setExecutionParameter(int index, int rangeFraction) {
    }
    
public:
    
    OppSuitTrackDiscardStrategy() 
    : DiscardStrategy(string("OppSuitTrackDiscardStrategy"), 0), numTies(1), decisionCertainty(0)
    {
    }

    OppSuitTrackDiscardStrategy (int myWeight)
    : DiscardStrategy (myWeight), numTies(1), decisionCertainty(0)
    {
    }

    virtual int getDecisionCertainty() {
        return decisionCertainty;
    }
    
    virtual Strategy* getActiveInstance(int inst_Weight) {
        return dynamic_cast<Strategy*>(new OppSuitTrackDiscardStrategy(inst_Weight));
    }

    virtual void opponentMove ( int opponent, const Move& move ) {}
    virtual int pickDiscard (CCardStack*, bool, const GameState* );
    
};

#endif	/* _OPPSUITTRACKDISCARDSTRATEGY_H */

